/**
 * FileName: ArticleDao
 * Author:   Administrator
 * Date:     2/6/2024 2:57 PM
 * Description: 文章 Mongodb 数据层
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.t.blog.mongodb.dao.base;

import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 〈一句话功能简述〉<br> 
 * 〈基础 mangodb 数据层接口〉
 *
 * @author Administrator
 * @create 2/6/2024 2:57 PM
 * @since 1.0.0
 */
@Service
public interface IBaseDao<T> {

    /**
     * @Description 根据条件查询
     * @Author
     * @Date
     * @Param
     * @return
    */
    public List<T> find(Query query);

    /**
     * @Description 根据 ID 查询
     * @Author
     * @Date
     * @Param
     * @return
     */
    public T findOne(String id);


    /**
     * @Description 插入数据
     * @Author
     * @Date
     * @Param
     * @return
     */
    public void insert(T entity);


    /**
     * @Description 更新数据
     * @Author
     * @Date
     * @Param
     * @return
    */
    public UpdateResult update(Query query, Update update);


    /**
     * @Description  删除数据
     * @Author
     * @Date
     * @Param
     * @return
    */
    public DeleteResult delete(T entity);

}
